@echo off
title XXXX
chcp 65001 >nul
set JAR_PATH=D:/test/video.jar
set CONFIG_LOCATION=D:/test/application.yml

for %%f in ("%JAR_PATH%") do set JAR_NAME=%%~nxf

echo ==============================================
echo 开始处理 %JAR_NAME% 服务...
echo JAR文件路径: %JAR_PATH%
echo 配置文件路径: %CONFIG_LOCATION%
echo ==============================================
set "PID="
for /f "tokens=1-2 delims= " %%a in ('jps -l ^| findstr "%JAR_PATH%"') do (
    set "PID=%%a"
)


if defined PID (
    echo 检测到服务正在运行，进程ID: !PID!
    echo 正在停止服务...
    
    :: 优雅停止服务
    taskkill /PID !PID! /F
    if !errorlevel! equ 0 (
        echo 服务已成功停止
    ) else (
        echo 停止服务时出现错误
        exit /b 1
    )
    
    :: 等待进程完全退出
    timeout /t 3 /nobreak >nul
) else (
    echo 服务当前未运行
)
echo.
echo 正在启动服务...

:: 检查jar文件是否存在
if not exist "%JAR_PATH%" (
    echo 错误: 未找到jar文件: %JAR_PATH%
    exit /b 1
)

:: 检查配置文件是否存在
if not exist "%CONFIG_LOCATION%" (
    echo 警告: 未找到配置文件: %CONFIG_LOCATION%
)
:: 启动服务
echo 启动命令: java -jar "%JAR_PATH%" --spring.config.location=file:"%CONFIG_LOCATION%"
java -jar "%JAR_PATH%" --spring.config.location="%CONFIG_LOCATION%"

:: 检查启动是否成功
if !errorlevel! equ 0 (
    echo 服务启动成功!
) else (
    echo 服务启动失败!
)


pause